/**
 * @author Jon Adams
 */
package org.osflash.signals.natives.sets;

import org.osflash.signals.natives.NativeSignal;
import flash.display.DisplayObject;
import flash.events.Event;

class DisplayObjectSignalSet extends EventDispatcherSignalSet {
	public var added(getAdded, never) : NativeSignal;
	public var addedToStage(getAddedToStage, never) : NativeSignal;
	public var enterFrame(getEnterFrame, never) : NativeSignal;
	public var exitFrame(getExitFrame, never) : NativeSignal;
	public var frameConstructed(getFrameConstructed, never) : NativeSignal;
	public var removed(getRemoved, never) : NativeSignal;
	public var removedFromStage(getRemovedFromStage, never) : NativeSignal;
	public var render(getRender, never) : NativeSignal;

	public function new(target : DisplayObject) {
		super(target);
	}

	public function getAdded() : NativeSignal {
		return getNativeSignal(Event.ADDED);
	}

	public function getAddedToStage() : NativeSignal {
		return getNativeSignal(Event.ADDED_TO_STAGE);
	}

	public function getEnterFrame() : NativeSignal {
		return getNativeSignal(Event.ENTER_FRAME);
	}

	public function getExitFrame() : NativeSignal {
		// Using a string here because we need to target FP9
		return getNativeSignal("exitFrame");
	}

	public function getFrameConstructed() : NativeSignal {
		// Using a string here because we need to target FP9
		return getNativeSignal("frameConstructed");
	}

	public function getRemoved() : NativeSignal {
		return getNativeSignal(Event.REMOVED);
	}

	public function getRemovedFromStage() : NativeSignal {
		return getNativeSignal(Event.REMOVED_FROM_STAGE);
	}

	public function getRender() : NativeSignal {
		return getNativeSignal(Event.RENDER);
	}

}

